package common.util;

import java.security.SecureRandom;
import java.util.Random;

/**
 * 全局唯一标识符生成器
 *
 * @author 米泽鹏
 * @since 2021-08-05 6:28 下午
 */
public class GUID {

	/**
	 * 生成随机字符串，数字+大小写
	 *
	 * @param length 字符串长度
	 * @return 随机字符串
	 */
	public static String randomGuid(int length) {
		StringBuilder uid = new StringBuilder();
		// 产生长度为length的强随机数
		Random rd = new SecureRandom();
		for (int i = 0; i < length; i++) {
			// 产生0-2的3位随机数
			int type = rd.nextInt(3);
			switch (type) {
				case 0:
					// 0-9的随机数
					uid.append(rd.nextInt(10));
					break;
				case 1:
					// ASCII在65-90之间为大写,获取大写随机
					uid.append((char) (rd.nextInt(25) + 65));
					break;
				case 2:
					// ASCII在97-122之间为小写，获取小写随机
					uid.append((char) (rd.nextInt(25) + 97));
					break;
				default:
					break;
			}
		}
		return uid.toString();
	}

}
